On cherche à étudier les réseaux de coexpression obtenus à partir de données transcriptomiques.
On prend ici les 131 gènes qui ont été détectés comme différentiellement exprimés en réponse au fort CO2. On infère leur réseau de coexpression par un modèle graphique gaussien latent (Chiquet et Al.), et clustering par modèles de mélanges à lois de Poisson (Rau et Al.)
## corrplot 0.84 loaded
http://christophergandrud.github.io/networkD3/
Les couleurs de noeuds correspondent au clustering fait au prélable. L’objet igraph est loadé puis tranformé en objet compatible avec network_d3.
library(networkD3)
load("./CO2_igraph_network.RData")
TF <- read.table("TFs_PlnTFDB.txt", h = T, sep = "\t")
TF$AGI <- str_split_fixed(TF$Protein.ID, "\\.", 2)[, 1]
V(net)$is.TF <- ifelse(V(net)$name %in% TF$AGI, 1, 0)
print(paste(sum(as.numeric(V(net)$is.TF)), "genes are TFs"))[1] "9 genes are TFs"
net_d3 <- igraph_to_networkD3(net, group = V(net)$color)
net_d3$nodes$isTF = ifelse(net_d3$node$name %in% TF$AGI, "Hell yeah", "Nah, just a target")
# Create force directed network plot
MyClickScript <- "alert(\"You clicked \" + d.name);"
forceNetwork(Links = net_d3$links, Nodes = net_d3$nodes, Source = "source", Target = "target",
charge = -20, NodeID = "name", Group = "group", opacity = 0.8, fontSize = 12,
zoom = T, bounded = T, clickAction = MyClickScript)On souhaite ajouter l’information de quels gènes sont des facteurs de transcription.
On essaie ensuite avec un plus gros réseau, composé de 400 des gènes répondant au nitrate.
net_d3 <- igraph_to_networkD3(net, group = V(net)$is.TF)
forceNetwork(Links = net_d3$links, Nodes = net_d3$nodes, Source = "source", Target = "target",
charge = -20, colourScale = "d3.scaleOrdinal(d3.schemeCategory10);", NodeID = "name",
Group = "group", opacity = 0.8, fontSize = 12, zoom = T, bounded = T, clickAction = MyClickScript)load("./Nitrate_igraph_network.RData")
V(net)$is.TF <- ifelse(V(net)$name %in% TF$AGI, 1, 0)
print(paste(sum(as.numeric(V(net)$is.TF)), "genes are TFs"))[1] "32 genes are TFs"
net_d3 <- igraph_to_networkD3(net, group = V(net)$is.TF)
forceNetwork(Links = net_d3$links, Nodes = net_d3$nodes, Source = "source", Target = "target",
charge = -20, colourScale = "d3.scaleOrdinal(d3.schemeCategory10);", NodeID = "name",
Group = "group", opacity = 0.8, fontSize = 12, zoom = T, bounded = T, clickAction = MyClickScript)Palettes d3 js à choisir ici : https://bl.ocks.org/pstuffa/3393ff2711a53975040077b7453781a9
load("./CO2_igraph_network.RData")
library(visNetwork)
data <- toVisNetworkData(net)
# visNetwork(nodes = data$nodes, edges = data$edges)
data$nodes$size <- data$nodes$size * 10
visNetwork(nodes = data$nodes, edges = data$edges, height = "500px", width = "100%") %>%
visPhysics(solver = "barnesHut", timestep = 0.1, minVelocity = 0.2, stabilization = FALSE)